﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using RepositorioSATT.Conexiones;

namespace RepositorioSATT
{
    public class UbicacionRepositorio : IProvinciaRepositorio, IPaisRepositorio, ILocalidadRepositorio
    {
        protected Conexion conn;
        protected string sql = "";

        public UbicacionRepositorio()
        {
            conn = new Conexion();
        }

        #region IProvinciaRepositorioSATT Members

        public List<string> ListadoProvincia(int idPais)
        {
            sql = "select Nombre from Provincias where idpais = " + idPais;
            DataTable dt = conn.Listar(sql);
            List<string> Lista = new List<string>();
            foreach (System.Data.DataRow dr in dt.Rows)
            {
                Lista.Add(dr[0].ToString().Trim());
            }
            return Lista;
        }

        public void AgregarProvincia(int idpais, string provinciar, bool estado)
        {
            string datos = idpais + ",'" + provinciar + "','" + estado.ToString() + "'";
            conn.Agregar("Provincias", "idpais,Nombre,Estado", datos);
        }

        public int BuscarIDProvincia(string provincia)
        {
            string sql = "select idprovincia from Provincias where nombre = '" + provincia + "'";
            System.Data.DataRow dr = conn.Buscar(sql);
            if (dr != null)
            {
                int ret = Convert.ToInt32(dr["idprovincia"]);
                return ret;
            }
            else
            {
                return -1;
            }
        }

        public string ObtenerProvincia(int idprovincia)
        {
            sql = "select NOMBRE from Provincias where idprovincia = " + idprovincia;
            string ubic = conn.Buscar(sql)[0].ToString().Trim();
            return ubic;
        }

        #endregion

        #region IPaisRepositorioSATT Members

        public List<string> ListadoPais()
        {
            string sql = "select Nombre from Pais ";
            DataTable dt = conn.Listar(sql);
            List<string> Lista = new List<string>();
            foreach (System.Data.DataRow dr in dt.Rows)
            {
                Lista.Add(dr["Nombre"].ToString());
            }
            return Lista;
        }

        public void AgregarPais(string pais, bool estado)
        {
            string datos = "'" + pais + "','" + estado.ToString() + "'";
            int id = conn.Agregar("Pais", "Nombre,Estado", datos);
        }

        public int BuscarIDPais(string pais)
        {
            string sql = "select idpais from Pais where nombre = '" + pais + "'";
            System.Data.DataRow dr = conn.Buscar(sql);
            if (dr != null)
            {
                int ret = Convert.ToInt32(dr["idpais"]);
                return ret;
            }
            else
            {
                return -1;
            }
        }
        public string ObtenerPais(int idpais)
        {
            string sql = "select Nombre from Pais where IdPais = " + idpais + "";
            System.Data.DataRow dr = conn.Buscar(sql);
            if (dr != null)
                return Convert.ToString(dr["Nombre"]);
            else
                return string.Empty;
        }
        #endregion

        #region ILocalidadRepositorioSATT Members

        public List<string> ListadoLocalidad(int idprovincia)
        {
            string sql = "select Nombre from Localidades where idprovincia = " + idprovincia;
            DataTable dt = conn.Listar(sql);
            List<string> Lista = new List<string>();
            foreach (System.Data.DataRow dr in dt.Rows)
            {
                Lista.Add(dr["Nombre"].ToString());
            }
            return Lista;
        }

        public void AgregarLocalidad(int idprovincia, string Localidad, bool Estado)
        {
            string datos = idprovincia + ",'" + Localidad + "','" + Estado.ToString() + "'";
            int id = conn.Agregar("Localidades", "idprovincia,Nombre,Estado", datos);
        }

        public int BuscarIDLocalidad(string localidad)
        {
            string sql = "select IdLocalidad from Localidades where nombre = '" + localidad + "'";
            System.Data.DataRow dr = conn.Buscar(sql);
            if (dr != null)
            {
                int ret = Convert.ToInt32(dr["IdLocalidad"]);
                return ret;
            }
            else
            {
                return -1;
            }
        }
        public string ProvinciaLocalidad(int idlocalidad)
        {
            string sql = "SELECT P.NOMBRE AS PROVINCIA  FROM LOCALIDADES L INNER JOIN PROVINCIAS P ON L.idprovincia = P.idprovincia where IdLocalidad = " + idlocalidad + "";
            System.Data.DataRow dr = conn.Buscar(sql);
            string ret = Convert.ToString(dr["PROVINCIA"]);
            return ret;
        }
        public string PaisLocalidad(int idlocalidad)
        {
            string sql = "SELECT PR.NOMBRE AS PAIS  FROM LOCALIDADES L INNER JOIN PROVINCIAS P ON L.idprovincia = P.idprovincia INNER JOIN PAIS PR ON P.idpais = PR.idpais where IdLocalidad = " + idlocalidad + "";
            System.Data.DataRow dr = conn.Buscar(sql);
            string ret = Convert.ToString(dr["PAIS"]);
            return ret;
        }
        public string ObtenerLocalidad(int idlocalidad)
        {
            string sql = "SELECT NOMBRE FROM LOCALIDADES where IdLocalidad = " + idlocalidad + "";
            System.Data.DataRow dr = conn.Buscar(sql);
            string ret = Convert.ToString(dr["NOMBRE"]);
            return ret;
        }

        #endregion

    }
}
